#include "CasoDeTest.h"

CasoDeTest::CasoDeTest() {
    _salidaEsperada = NULL;
    _salidaObtenida = NULL;
}

vector<TipoDeDato*>& CasoDeTest::getParametros() {
    return _parametros;
}

void CasoDeTest::setSalidaEsperada(TipoDeDato* tipoDeDato){
    this->_salidaEsperada = tipoDeDato;
}

TipoDeDato* CasoDeTest::getSalidaEsperada() {
    return _salidaEsperada;
}

void CasoDeTest::setSalidaObtenida(TipoDeDato* tipoDeDato){
    this->_salidaObtenida = tipoDeDato;
}

TipoDeDato* CasoDeTest::getSalidaObtenida() {
    return _salidaObtenida;
}

void CasoDeTest::agregarSalidaInOut(TipoDeDato* tipoDeDato){
    this->_salidasInOut.push_back(tipoDeDato);
}

void CasoDeTest::agregarParametro(TipoDeDato* tipoDeDato) {
    this->_parametros.push_back(tipoDeDato);
}

void CasoDeTest::liberarMemoriaParametros() {
   if(_salidaEsperada != NULL){
        delete _salidaEsperada;
    }

    if(_salidaObtenida != NULL){
        delete _salidaObtenida;
    }

    for ( vector<TipoDeDato*>::iterator it = _parametros.begin(); it != _parametros.end(); it++ ) {
        if ( *it != NULL ) {
            delete *it;
        }
    }

    for ( vector<TipoDeDato*>::iterator it = _salidasInOut.begin(); it != _salidasInOut.end(); it++ ) {
        if ( *it != NULL ) {
            delete *it;
        }
    }
}

CasoDeTest::~CasoDeTest() { }

vector<TipoDeDato*>& CasoDeTest::getSalidasInOut() {
    return _salidasInOut;
}
